package com.zpark.day08;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 数组扩容与缩容：
 *		数组扩容与缩容的实质：就是创建一个新的数组，新数组的长度比原来的数组（大，扩容，小，缩容），
 * 然后将原来数组中的内容全部拷贝到新的数组中，最后将新数组重新赋给原来的数组。
 */
public class Demo05 {
    // 创建main函数的快捷方式  psvm    main
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        // 快速创建输出语句sout
        System.out.println();
        // 快速获取返回值的快捷方式  方法or对象.var
//        Scanner scan = new Scanner(System.in);
//        String res = scan.next();

        // 针对arr数组扩容，长度扩容到原来的两倍
        int[] copy1 = Arrays.copyOf(arr, arr.length * 2);
        System.out.println(Arrays.toString(copy1));

        // 创建新数组
        int[] arr2 = new int[arr.length * 2];
        System.arraycopy(arr, 0, arr2, 0, arr.length);
        System.out.println(Arrays.toString(arr2));

        int[] copy2 = Arrays.copyOfRange(arr, 0, arr.length * 2);
        System.out.println(Arrays.toString(copy2));

        // 针对srr数组做缩容，长度缩短为原来的一半
        int[] copy4 = Arrays.copyOf(arr, arr.length / 2);
        System.out.println(Arrays.toString(copy4));

        int[] arr3 = new int[arr.length / 2];
        System.arraycopy(arr, 0, arr3, 0, arr.length / 2);
        System.out.println(Arrays.toString(arr3));

        int[] copy3 = Arrays.copyOfRange(arr, 0, arr.length / 2);
        System.out.println(Arrays.toString(copy3));
    }
}
